JavaScriptã³ãŒãå質ããã·ã¥ããŒãã®åšåãè§£ãæŸã¡ãŸããããäž»èŠãªã¡ããªã¯ã¹ãå¯èŠåããåŸåãåæããã°ããŒãã«ãªéçºããŒã ã§åè¶æ§ã®æåãæ§ç¯ããæ¹æ³ãåŠã³ãŸãã
JavaScriptã³ãŒãå質ããã·ã¥ããŒãïŒã¡ããªã¯ã¹ã®å¯èŠåãšåŸååæã®åŸ¹åºè§£èª¬
å€åã®éããœãããŠã§ã¢éçºã®äžçã§ã¯ãJavaScriptã¯ãŠã§ãã®ãŠããã¿ã¹ãªèšèªãšãªããã€ã³ã¿ã©ã¯ãã£ããªããã³ããšã³ãäœéšããå ç¢ãªããã¯ãšã³ããµãŒãã¹ãŸã§ããããããã®ã匷åããŠããŸãããããžã§ã¯ããæ¡å€§ããããŒã ãæé·ããã«ã€ããŠãéãã§é°æ¹¿ãªèª²é¡ãæµ®äžããŸããããã¯ãã³ãŒãå質ã®ç¶æã§ãã質ã®äœãã³ãŒãã¯åãªãçŸçåé¡ã§ã¯ãããŸãããããã¯çç£æ§ã«å¯ŸããçŽæ¥çãªèª²çšã§ãããäºæž¬äžå¯èœãªãã°ã®çºçæºã§ãããã€ãããŒã·ã§ã³ã®éå£ã§ããããã¯æè¡çè² åµãçã¿åºããæŸçœ®ããã°æãææãªãããžã§ã¯ãã§ããã麻çºãããå¯èœæ§ããããŸãã
çŸä»£ã®éçºããŒã ã¯ã©ã®ããã«ããã«å¯ŸæããŠããã®ã§ããããïŒåœŒãã¯äž»èгçãªæšæž¬ããã客芳çã§ããŒã¿ã«åºã¥ããæŽå¯ãžãšç§»è¡ããŠããŸãããã®ã¢ãããŒãã®èŠãšãªãã®ããJavaScriptã³ãŒãå質ããã·ã¥ããŒãã§ããããã¯åãªãéçãªã¬ããŒãã§ã¯ãªããã³ãŒãããŒã¹ã®ç¶æ ãåçã«è¡šç€ºãããã®ã§ãããã¡ããªã¯ã¹ã®å¯èŠåãšéèŠãªåŸååæã®ããã®äžå åããããããæäŸããŸãã
ãã®å æ¬çãªã¬ã€ãã§ã¯ã匷åãªã³ãŒãå質ããã·ã¥ããŒããäœæãæŽ»çšããããã«ç¥ã£ãŠããã¹ãããšããã¹ãŠèª¬æããŸãã远跡ãã¹ãéèŠãªã¡ããªã¯ã¹ã䜿çšããããŒã«ããããŠæãéèŠãªããšãšããŠããã®ããŒã¿ãçµç¹å šäœã®ãšã³ãžãã¢ãªã³ã°çµç¹ã«å ±é³Žããç¶ç¶çãªæ¹åã®æåã«ã©ã®ããã«å€ããããæ¢ããŸãã
ã³ãŒãå質ããã·ã¥ããŒããšã¯äœãããããŠãªããããäžå¯æ¬ ãªã®ãïŒ
ãã®æ žå¿ã«ãããŠãã³ãŒãå質ããã·ã¥ããŒãã¯ããœãŒã¹ã³ãŒãã®ç¶æ ã«é¢ããäž»èŠãªã¡ããªã¯ã¹ãèŠèŠçã«è¿œè·¡ãåæã衚瀺ããæ å ±ç®¡çããŒã«ã§ãããªã³ã¿ãŒããã¹ãã«ãã¬ããžã¬ããŒã¿ãŒãéçè§£æãšã³ãžã³ãªã©ãããŸããŸãªè§£æããŒã«ããã®ããŒã¿ãéçŽããå€ãã®å Žåããã£ãŒããã²ãŒãžãããŒãã«ã䜿çšããŠãçè§£ãããã圢åŒã§è¡šç€ºããŸãã
ã³ãŒãããŒã¹ã®ãã©ã€ãã³ã³ãããŒã«ããã«ãšèããŠãã ããããã€ãããã¯ãã©ã®ããã«æããããã«åºã¥ããŠé£è¡æ©ãæçžŠããã®ã§ã¯ãªããé«åºŠãé床ããšã³ãžã³ã®ç¶æ ãæž¬å®ããæ£ç¢ºãªèšåšã«äŸåããŸããåæ§ã«ããšã³ãžãã¢ãªã³ã°ãªãŒãã¯ãçŽæã«åºã¥ããŠãããžã§ã¯ãã®ç¶æ ã管çãã¹ãã§ã¯ãããŸãããããã·ã¥ããŒãã¯å¿ èŠãªèšè£ ãæäŸããŸãã
ã°ããŒãã«ããŒã ã«ãšã£ãŠäžå¯æ¬ ãªå©ç¹
- åäžã®ä¿¡é Œã§ããæ å ±æºïŒè€æ°ã®ã¿ã€ã ãŸãŒã³ã«ãŸããã忣ããŒã ã§ã¯ãããã·ã¥ããŒãã¯ã³ãŒãå質ã«ã€ããŠè°è«ããããã®å ±éã®å®¢èгçãªèšèªãæäŸããŸãã䞻芳çãªè°è«ãæé€ããå šå¡ãåãç®æšã«åãããŸãã
- ããã¢ã¯ãã£ããªå顿€åºïŒæ¬çªç°å¢ã§ãã°ã衚é¢åããã®ãåŸ ã€ã®ã§ã¯ãªããããã·ã¥ããŒãã¯åé¡ã®ããåŸåãæ©æã«ç¹å®ããã®ã«åœ¹ç«ã¡ãŸããæ°ããæ©èœã倿°ã®ã³ãŒãã¹ã¡ã«ãåŒãèµ·ãããŠãããã©ããããŸãã¯ãã¹ãã«ãã¬ããžãé倧ãªåé¡ã«ãªãåã«äœäžããŠãããã©ããã確èªã§ããŸãã
- ããŒã¿ã«åºã¥ããæææ±ºå®ïŒãã®ã¹ããªã³ãã§èªèšŒã¢ãžã¥ãŒã«ããªãã¡ã¯ã¿ãªã³ã°ãããããã¹ãã«ãã¬ããžãæ¹åãããã«æè³ãã¹ãã§ããããïŒããã·ã¥ããŒãã¯ãæè¡çãªå©å®³é¢ä¿è ãšéæè¡çãªå©å®³é¢ä¿è ã®äž¡æ¹ã«å¯ŸããŠãããã®æ±ºå®ãæ£åœåããããã®ããŒã¿ãæäŸããŸãã
- æè¡çè² åµã®åæžïŒæè¡çè² åµãç®ã«èŠãã圢ã«ããå®éåããããšã§ïŒããšãã°ãä¿®æ£ã«ãããæšå®æéïŒãããã·ã¥ããŒãã¯ããŒã ã«ããã«å¯ŸåŠãããŸããæœè±¡çãªæŠå¿µãããæéã®çµéãšãšãã«è¿œè·¡ããã³ç®¡çã§ããå ·äœçãªã¡ããªã¯ã¹ã«ç§»è¡ããŸãã
- ãªã³ããŒãã£ã³ã°ã®é«éåïŒæ°ããéçºè ã¯ãã³ãŒãããŒã¹ã®ç¶æ ãšããŒã ã®åè³ªåºæºããã°ããçè§£ã§ããŸããã³ãŒãã®ã©ã®é åãè€éãŸãã¯è匱ã§ãããç¹å¥ãªæ³šæãå¿ èŠãã確èªã§ããŸãã
- ã³ã©ãã¬ãŒã·ã§ã³ãšèª¬æè²¬ä»»ã®åäžïŒå質ã¡ããªã¯ã¹ãéæã§å šå¡ã«èŠããå Žåãããã¯é壿ææèãè²ã¿ãŸããããã¯å人ãéé£ããããšã§ã¯ãªããå ±æãããåºæºãç¶æããããã«ããŒã ããšã³ãã¯ãŒã¡ã³ãããããšã§ãã
ããã·ã¥ããŒãã§å¯èŠåããã³ã¢ã¡ããªã¯ã¹
åªããããã·ã¥ããŒãã¯ãæ å ±éå€ãåé¿ããŸããã³ãŒãå質ã®å šäœåãæäŸãããå³éžãããäžé£ã®ã¡ããªã¯ã¹ã«çŠç¹ãåœãŠãŠããŸããããããè«ççãªã«ããŽãªã«åé¡ããŠã¿ãŸãããã
1. ä¿å®æ§ã¡ããªã¯ã¹ïŒãã®ã³ãŒããçè§£ããŠå€æŽã§ããŸããïŒ
ä¿å®æ§ã¯ãé·æçãªãããžã§ã¯ãã«ãããŠæãéèŠãªåŽé¢ãšèšããã§ããããæ°ããæ©èœã远å ãããããã°ãä¿®æ£ãããããéãã«çŽæ¥åœ±é¿ããŸããä¿å®æ§ã®äœãã¯ãæè¡çè² åµã®äž»ãªåå ã§ãã
埪ç°çè€é床
å 容ïŒã³ãŒãã®æçãéãç·åœ¢ç¬ç«ãã¹ã®æ°ã枬å®ãããã®ãç°¡åã«èšããšã颿°å ã®æ±ºå®ïŒããšãã°ã`if`ã`for`ã`while`ã`switch`ã±ãŒã¹ïŒã®æ°ãå®éåããŸããè€éãã1ã®é¢æ°ã«ã¯åäžã®ãã¹ãããã`if`ã¹ããŒãã¡ã³ããæã€é¢æ°ã«ã¯è€éãã2ãããŸãã
éèŠãªçç±ïŒåŸªç°çè€é床ãé«ããšãã³ãŒãã®èªã¿åããçè§£ããã¹ããããã³å€æŽãå°é£ã«ãªããŸããè€éãã®ã¹ã³ã¢ãé«ã颿°ã¯ããã°ã®æåãªåè£ã§ãããå¯èœãªãã¹ãŠã®ãã¹ãã«ããŒããã«ã¯ãããå€ãã®ãã¹ãã±ãŒã¹ãå¿ èŠã§ãã
å¯èŠåããæ¹æ³ïŒ
- 颿°ããšã®å¹³åè€é床ã瀺ãã²ãŒãžã
- æãè€éãªé¢æ°ãäžäœ10åãªã¹ãããããŒãã«ã
- ãäœãïŒ1ã5ïŒããäžãïŒ6ã10ïŒããé«ãïŒ11ã20ïŒããæ¥µç«¯ãïŒ> 20ïŒã®è€éãã®ãã±ããã«è©²åœãã颿°ã®æ°ã瀺ãååžãã£ãŒãã
èªç¥è€é床
å 容ïŒSonarQubeã®ãããªããŒã«ã«ãã£ãŠæå±ãããŠããã人éãã³ãŒããçè§£ããã®ãã©ãã»ã©é£ããããæž¬å®ããããšãç®çãšãããããæ°ããã¡ããªã¯ã¹ã埪ç°çè€é床ãšã¯ç°ãªãããã¹ããããã«ãŒãã`try/catch`ãããã¯ãããã³`goto`ã®ãããªã¹ããŒãã¡ã³ããªã©ãã³ãŒãã®ç·åœ¢ãããŒãäžæããæ§é ã«ããã«ãã£ãç§ããŸãã
éèŠãªçç±ïŒåŸªç°çè€é床ããããä¿å®æ§ã«é¢ããããçŸå®çãªå°ºåºŠãæäŸããããšããããããŸããæ·±ããã¹ãããã颿°ã¯ãåçŽãª`switch`ã¹ããŒãã¡ã³ããšåã埪ç°çè€éããæã€ããšãã§ããŸããããã¹ãããã颿°ã¯éçºè ãæšè«ããã®ãã¯ããã«å°é£ã§ãã
å¯èŠåããæ¹æ³ïŒåŸªç°çè€é床ãšåæ§ã«ãå¹³åã«ã¯ã²ãŒãžã䜿çšããæãè€éãªé¢æ°ãç¹å®ããã«ã¯ããŒãã«ã䜿çšããŸãã
æè¡çè² åµ
å 容ïŒããè¯ãã¢ãããŒãã䜿çšãã代ããã«ãããé·ãæéããããçŸåšãç°¡åïŒéå®çïŒãªãœãªã¥ãŒã·ã§ã³ãéžæããããšã«ãã£ãŠåŒãèµ·ããããåäœæ¥ã®æé»ã®ã³ã¹ãã衚ãã¡ã¿ãã¡ãŒãéçè§£æããŒã«ã¯ãç¹å®ãããååé¡ãä¿®æ£ããããã®æéèŠç©ãããå²ãåœãŠãããšã«ãã£ãŠããããå®éåããŸãïŒããšãã°ãããã®éè€ãããããã¯ãä¿®æ£ããã«ã¯5åããããŸããïŒã
éèŠãªçç±ïŒæœè±¡çãªå質ã®åé¡ãå ·äœçãªããžãã¹ã¡ããªã¯ã¹ïŒæéïŒã«å€æããŸããã300åã®ã³ãŒãã¹ã¡ã«ããããŸãããšãããã¯ããããŒãžã£ãŒã«äŒãããããããæ°ããæ©èœã®éçºãé ãããŠãã45æ¥éã®æè¡çè² åµããããŸãããšèšãæ¹ãã€ã³ãã¯ãããããŸãã
å¯èŠåããæ¹æ³ïŒ
- åèšæšå®ä¿®åŸ©æéã瀺ã倧ããªç®ç«ã€æ°åïŒããšãã°ã人æ¥åäœïŒã
- åé¡ã®çš®é¡ïŒãã°ãè匱æ§ãã³ãŒãã¹ã¡ã«ïŒããšã«è² åµãåé¡ããåã°ã©ãã
2. ä¿¡é Œæ§ã¡ããªã¯ã¹ïŒãã®ã³ãŒãã¯æåŸ ã©ããã«åäœããŸããïŒ
ãããã®ã¡ããªã¯ã¹ã¯ãã³ãŒãã®æ£ç¢ºæ§ãšå ç¢æ§ã«çŠç¹ãåœãŠãæ¬çªç°å¢ã«å°éããåã«æœåšçãªãã°ãã»ãã¥ãªãã£äžã®æ¬ é¥ãçŽæ¥ç¹å®ããŸãã
ãã°ãšè匱æ§
å 容ïŒãããã¯ãäžæ£ãªåäœãåŒãèµ·ãããããã»ãã¥ãªãã£ããŒã«ãäœæãããããå¯èœæ§ãé«ãéçè§£æããŒã«ã«ãã£ãŠç¹å®ãããåé¡ã§ããäŸãšããŠã¯ããã«ãã€ã³ã¿äŸå€ããªãœãŒã¹ãªãŒã¯ããŸãã¯å®å šã§ãªãæå·åã¢ã«ãŽãªãºã ã®äœ¿çšãªã©ããããŸãã
éèŠãªçç±ïŒããã¯æãéèŠãªã«ããŽãªã§ãããããã®åé¡ã¯ãã·ã¹ãã ã®ã¯ã©ãã·ã¥ãããŒã¿ã®ç ŽæããŸãã¯ã»ãã¥ãªãã£äŸµå®³ã«ã€ãªããå¯èœæ§ããããŸããè¿ éãªå¯Ÿå¿ã®ããã«åªå é äœãä»ããå¿ èŠããããŸãã
å¯èŠåããæ¹æ³ïŒ
- ãã°ãšè匱æ§ã®åå¥ã®ã«ãŠã³ãããç®ç«ã€ããã«è¡šç€ºããŸãã
- é倧床å¥ã®å èš³ïŒãããã«ãŒãã¯ãªãã£ã«ã«ãã¡ãžã£ãŒããã€ããŒã®åé¡ã«ã€ããŠãè²åããããæ£ã°ã©ãã䜿çšããŸããããã«ãããããŒã ã¯æåã«ä¿®æ£ãããã®ãåªå é äœä»ãã§ããŸãã
ã³ãŒãã¹ã¡ã«
å 容ïŒã³ãŒãã¹ã¡ã«ã¯ãéåžžãã·ã¹ãã å ã®ããæ·±ãåé¡ã«å¯Ÿå¿ãã衚é¢çãªå åã§ããããèªäœã¯ãã°ã§ã¯ãããŸããããåºæ¬çãªèšèšååã®éåã瀺åãããã¿ãŒã³ã§ããäŸãšããŠã¯ããé·ãã¡ãœããããã倧ããªã¯ã©ã¹ãããŸãã¯ã³ã¡ã³ãã¢ãŠããããã³ãŒãã®åºç¯ãªäœ¿çšãªã©ããããŸãã
éèŠãªçç±ïŒããã«éèŠã§ã¯ãããŸããããã³ãŒãã¹ã¡ã«ã¯æè¡çè² åµãšä¿å®æ§ã®äœãã®äž»ãªåå ã§ããã¹ã¡ã«ã«æ©ãŸãããŠããã³ãŒãããŒã¹ã¯ãæäœãé£ãããå°æ¥ãã°ãçºçããããã§ãã
å¯èŠåããæ¹æ³ïŒ
- ã³ãŒãã¹ã¡ã«ã®ç·æ°ã
- ã¿ã€ãå¥ã®å èš³ãããŒã ãç¹°ãè¿ãããæªãç¿æ £ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
3. ãã¹ãã«ãã¬ããžã¡ããªã¯ã¹ïŒã³ãŒãã¯é©åã«ãã¹ããããŠããŸããïŒ
ãã¹ãã«ãã¬ããžã¯ãèªåãã¹ãã«ãã£ãŠå®è¡ãããã³ãŒãã®å²åãæž¬å®ããŸããããã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã»ãŒããã£ãããã®åºæ¬çãªææšã§ãã
è¡ãåå²ãããã³é¢æ°ã®ã«ãã¬ããž
å 容ïŒ
- è¡ã«ãã¬ããžïŒå®è¡å¯èœãªã³ãŒãè¡ã®ãã¡ããã¹ãã«ãã£ãŠå®è¡ãããã®ã¯äœããŒã»ã³ãã§ããïŒ
- åå²ã«ãã¬ããžïŒãã¹ãŠã®æ±ºå®ãã€ã³ãïŒããšãã°ã`if`ã¹ããŒãã¡ã³ãïŒã«ã€ããŠã`true`ãš`false`ã®äž¡æ¹ã®åå²ãå®è¡ãããŸãããïŒããã¯ãè¡ã«ãã¬ããžãããã¯ããã«åŒ·åãªã¡ããªã¯ã¹ã§ãã
- 颿°ã«ãã¬ããžïŒã³ãŒãå ã®é¢æ°ã®ãã¡ããã¹ãã«ãã£ãŠåŒã³åºãããã®ã¯äœããŒã»ã³ãã§ããïŒ
éèŠãªçç±ïŒã«ãã¬ããžãäœãããšã¯ãé倧ãªå±éºä¿¡å·ã§ããã¢ããªã±ãŒã·ã§ã³ã®å€§éšåãããŠãŒã¶ãŒãå ±åãããŸã§èª°ãç¥ããªããã¡ã«ç Žæããå¯èœæ§ãããããšãæå³ããŸããã«ãã¬ããžãé«ããšããªã°ã¬ãã·ã§ã³ãçºçãããããšãªã倿Žãå ããããšãã§ãããšãã確信ãåŸãããŸãã
泚æç¹ïŒã«ãã¬ããžãé«ãããšã¯ãé«å質ã®ãã¹ãã®ä¿èšŒã§ã¯ãããŸãããã¢ãµãŒã·ã§ã³ããªããäœã蚌æã§ããªããã¹ãã§100ïŒ ã®è¡ã«ãã¬ããžãåŸãããšãã§ããŸããã«ãã¬ããžã¯ãåªãããã¹ãã®å¿ èŠæ¡ä»¶ã§ãããå忡件ã§ã¯ãããŸãããèæ å¿ã®ã¡ããªã¯ã¹ãšããŠã§ã¯ãªãããã¹ããããŠããªãã³ãŒããèŠã€ããããã«äœ¿çšããŠãã ããã
å¯èŠåããæ¹æ³ïŒ
- å šäœçãªåå²ã«ãã¬ããžã瀺ãç®ç«ã€ã²ãŒãžã
- æéã®çµéã«äŒŽãã«ãã¬ããžã®åŸåã瀺ãæãç·ã°ã©ãïŒããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãïŒã
- ãæ°ããã³ãŒãã®ã«ãã¬ããžãã®ç¹å®ã®ã¡ããªã¯ã¹ãããã¯ããã¹ãŠã®æ°ããè²¢ç®ãååã«ãã¹ããããŠããããšãä¿èšŒãããããå šäœçãªã«ãã¬ããžãããéèŠã§ããããšããããããŸãã
4. éè€ã¡ããªã¯ã¹ïŒç§ãã¡ã¯èªåèªèº«ãç¹°ãè¿ããŠããŸããïŒ
éè€ããè¡/ãããã¯
å 容ïŒç°ãªããã¡ã€ã«ãŸãã¯é¢æ°éã§ã³ããŒã¢ã³ãããŒã¹ããããã³ãŒãã®å²åã
éèŠãªçç±ïŒéè€ããã³ãŒãã¯ãã¡ã³ããã³ã¹ã®æªå€¢ã§ãã1ã€ã®ãããã¯ã§èŠã€ãã£ããã°ã¯ããã®ãã¹ãŠã®éè€ã§èŠã€ããŠä¿®æ£ããå¿ èŠããããŸãããDon't Repeat YourselfãïŒDRYïŒã®ååã«éåããå€ãã®å Žåãæœè±¡åã®æ©äŒãéããŠããããšã瀺ããŸãïŒããšãã°ãå ±æé¢æ°ãŸãã¯ã³ã³ããŒãã³ããäœæãããªã©ïŒã
å¯èŠåããæ¹æ³ïŒ
- å šäœçãªéè€ã¬ãã«ã瀺ãããŒã»ã³ããŒãžã²ãŒãžã
- ãªãã¡ã¯ã¿ãªã³ã°ã®åãçµã¿ãã¬ã€ãããããã«ãæå€§ãŸãã¯æãé »ç¹ã«éè€ããã³ãŒããããã¯ã®ãªã¹ãã
åŸååæã®åïŒã¹ãããã·ã§ãããè¶ ãã
ã³ãŒãã®çŸåšã®ç¶æ ã瀺ãããã·ã¥ããŒãã¯åœ¹ã«ç«ã¡ãŸãããã®ç¶æ ãæéã®çµéãšãšãã«ã©ã®ããã«å€åãããã瀺ãããã·ã¥ããŒãã¯ãå€é©ããããããŸãã
åŸååæã¯ãåºæ¬çãªã¬ããŒããšæŠç¥çãªããŒã«ãåºå¥ãããã®ã§ããã³ã³ããã¹ããšãã©ãã£ããæäŸããŸããã¹ãããã·ã§ããã¯50åã®é倧ãªãã°ãããããšã瀺ãå¯èœæ§ããããŸãããããã¯èŠæãã¹ãããšã§ãããããã6ãæåã«200åã®é倧ãªãã°ããã£ãããšã瀺ãåŸåç·ã¯ãå€§å¹ ãªæ¹åãšæåããåãçµã¿ã®ç©èªãç©èªã£ãŠããŸããéã«ã仿¥ãŒãã®é倧ãªãã°ããããæ¯é±5ã€ã®æ°ãããã°ã远å ããŠãããããžã§ã¯ãã¯ãå±éºãªè»éã«ä¹ã£ãŠããŸãã
ç£èŠããäž»èŠãªåŸåïŒ
- æéã®çµéã«äŒŽãæè¡çè² åµïŒããŒã ã¯è² åµãè¿æžããŠãããããããšãèç©ããŠãããïŒäžæåŸåã¯ãå°æ¥çã«éçºé床ãäœäžãããšããæç¢ºãªå åã§ããã¡ãžã£ãŒãªãªãŒã¹ã«å¯ŸããŠãããããããããŠããã®åœ±é¿ã確èªããŸãã
- æ°ããã³ãŒãã®ãã¹ãã«ãã¬ããžïŒããã¯éèŠãªå è¡ææšã§ããæ°ããã³ãŒãã®ã«ãã¬ããžãäžè²«ããŠé«ãå ŽåïŒããšãã°ã> 80ïŒ ïŒãå šäœçãªã«ãã¬ããžã¯èªç¶ã«äžæããŸããäœãå Žåã¯ãã³ããããããã³ã«ã»ãŒããã£ãããã匱äœåããŠããŸãã
- å°å ¥ãããæ°ããåé¡ãšã¯ããŒãºãããåé¡ïŒåé¡ãä¿®æ£ããé床ã¯ãåé¡ãäœæããé床ãããéãã§ããïŒé±ããšã®ãæ°ãããããã«ãŒãã°ããšãã¯ããŒãºããããããã«ãŒãã°ãã瀺ãæãç·ã°ã©ãã¯ã匷åãªåæ©ä»ãã«ãªããŸãã
- è€éãã®åŸåïŒã³ãŒãããŒã¹ã®å¹³å埪ç°çè€éãã¯åŸã ã«äžæããŠããŸããïŒããã¯ãã¢ãŒããã¯ãã£ãæéã®çµéãšãšãã«ãŸããŸã絡ã¿åã£ãŠããããšã瀺ããŠããå¯èœæ§ããããå°çšã®ãªãã¡ã¯ã¿ãªã³ã°äœæ¥ãå¿ èŠã«ãªãå ŽåããããŸãã
åŸåã广çã«å¯èŠåãã
åçŽãªæãç·ã°ã©ãã¯ãåŸååæã«æé©ãªããŒã«ã§ããxè»žã¯æéïŒæ¥ãé±ããŸãã¯ãã«ãïŒã衚ããy軞ã¯ã¡ããªã¯ã¹ã衚ããŸããã¡ãžã£ãŒãªãªãŒã¹ãæ°ããããŒã ã®åå ããŸãã¯ãªãã¡ã¯ã¿ãªã³ã°ã®åãçµã¿ã®éå§ãªã©ãéèŠãªã€ãã³ãã®ã¿ã€ã ã©ã€ã³ã«ã€ãã³ãããŒã«ãŒã远å ããããšãæ€èšããŠãã ãããããã«ãããã¡ããªã¯ã¹ã®å€åãšçŸå®äžçã®ã€ãã³ããé¢é£ä»ããããšãã§ããŸãã
JavaScriptã³ãŒãå質ããã·ã¥ããŒãã®æ§ç¯ïŒããŒã«ãšãã¯ãããžãŒ
ããã·ã¥ããŒããæåããæ§ç¯ããå¿ èŠã¯ãããŸããããããã®ã¡ããªã¯ã¹ãåéãåæãããã³å¯èŠåããã®ã«åœ¹ç«ã€å ç¢ãªããŒã«ãšã³ã·ã¹ãã ãååšããŸãã
ã³ã¢ããŒã«ãã§ãŒã³
1. éçè§£æããŒã«ïŒããŒã¿åéè ïŒ
ãããã®ããŒã«ã¯åºç€ã§ãããœãŒã¹ã³ãŒããå®è¡ããã«ã¹ãã£ã³ããŠããã°ãè匱æ§ãããã³ã³ãŒãã¹ã¡ã«ãèŠã€ããŸãã
- ESLintïŒJavaScriptãšã³ã·ã¹ãã ã«ãããlintã®äºå®äžã®æšæºãé«åºŠã«æ§æå¯èœã§ãã³ãŒãã¹ã¿ã€ã«ã匷å¶ããäžè¬çãªããã°ã©ãã³ã°ãšã©ãŒãèŠã€ããã¢ã³ããã¿ãŒã³ãç¹å®ã§ããŸããå€ãã®å Žåãéçºè ã®IDEã«çŽæ¥çµ±åããããæåã®é²åŸ¡ç·ã§ãã
- SonarQubeïŒSonarJSã䜿çšïŒïŒã³ãŒãå質ã®ç¶ç¶çãªæ€æ»ã®ããã®å æ¬çãªãªãŒãã³ãœãŒã¹ãã©ãããã©ãŒã ãlintãã¯ããã«è¶ ããŠããã°ãè匱æ§ãèªç¥è€éæ§ãããã³æè¡çè² åµã®èŠç©ããã®ããã®é«åºŠãªåæãæäŸããŸãããã¹ãŠã®å質ããŒã¿ãéçŽããäžå€®ãµãŒããŒãšããŠèšèšãããŠããŸãã
- ãã®ä»ïŒSaaSãã©ãããã©ãŒã ïŒïŒCodeClimateãCodacyãããã³Snykã®ãããªãµãŒãã¹ã¯ãã¯ã©ãŠããµãŒãã¹ãšããŠåŒ·åãªåæãæäŸããŠãããå€ãã®å ŽåãGitHubãGitLabã®ãããªãã©ãããã©ãŒã ãžã®ç·å¯ãªçµ±åãæäŸããŠããŸãã
2. ãã¹ãã«ãã¬ããžããŒã«ïŒãã¹ã¿ãŒïŒ
ãããã®ããŒã«ã¯ãã¹ãã¹ã€ãŒããå®è¡ããã³ãŒãã®ã©ã®éšåãå®è¡ããããã«é¢ããã¬ããŒããçæããŸãã
- JestïŒIstanbulã©ã€ãã©ãªãæèŒãããçµã¿èŸŒã¿ã®ã³ãŒãã«ãã¬ããžæ©èœãåããäžè¬çãªJavaScriptãã¹ããã¬ãŒã ã¯ãŒã¯ã
- IstanbulïŒãŸãã¯nycïŒïŒã»ãšãã©ãã¹ãŠã®ãã¹ããã¬ãŒã ã¯ãŒã¯ïŒMochaãJasmineãªã©ïŒã§äœ¿çšã§ããã«ãã¬ããžããŒã¿ãåéããããã®ã³ãã³ãã©ã€ã³ããŒã«ã
ãããã®ããŒã«ã¯éåžžãLCOVãClover XMLã®ãããªæšæºåœ¢åŒã§ã«ãã¬ããžããŒã¿ãåºåããŸãããã®åŸãããã·ã¥ããŒããã©ãããã©ãŒã ã«ã€ã³ããŒãã§ããŸãã
3. ããã·ã¥ããŒããšå¯èŠåãã©ãããã©ãŒã ïŒãã£ã¹ãã¬ã€ïŒ
ããã¯ããã¹ãŠã®ããŒã¿ãéãŸãå Žæã§ããããã§ã¯ãäž»ã«2ã€ã®ãªãã·ã§ã³ããããŸãã
ãªãã·ã§ã³AïŒãªãŒã«ã€ã³ã¯ã³ãœãªã¥ãŒã·ã§ã³
SonarQubeãCodeClimateãããã³Codacyã®ãããªãã©ãããã©ãŒã ã¯ãåæãšã³ãžã³ãšããã·ã¥ããŒãã®äž¡æ¹ãšããŠèšèšãããŠããŸããããã¯æãç°¡åã§äžè¬çãªã¢ãããŒãã§ãã
- é·æïŒç°¡åãªã»ããã¢ãããåæãšå¯èŠåã®éã®ã·ãŒã ã¬ã¹ãªçµ±åããã¹ããã©ã¯ãã£ã¹ã¡ããªã¯ã¹ãåããäºåæ§ææžã¿ã®ããã·ã¥ããŒãã
- çæïŒéåžžã«å ·äœçãªå¯èŠåããŒãºãããå Žåãæè»æ§ãäœäžããå¯èœæ§ããããŸãã
ãªãã·ã§ã³BïŒDIYïŒDo-It-YourselfïŒã¢ãããŒã
æå€§éã®å¶åŸ¡ãšã«ã¹ã¿ãã€ãºã®ããã«ãåæããŒã«ããã®ããŒã¿ãæ±çšçãªããŒã¿å¯èŠåãã©ãããã©ãŒã ã«ãã£ãŒãã§ããŸãã
- ã¹ã¿ãã¯ïŒCIãã€ãã©ã€ã³ã§ããŒã«ïŒESLintãJestãªã©ïŒãå®è¡ããçµæãJSONãšããŠåºåããã¹ã¯ãªããã䜿çšããŠãã®ããŒã¿ãPrometheusãInfluxDBã®ãããªæç³»åããŒã¿ããŒã¹ã«ããã·ã¥ããŸãããã®åŸãGrafanaã®ãããªããŒã«ã䜿çšããŠãããŒã¿ããŒã¹ã«ã¯ãšãªãå®è¡ããŠå®å šã«ã«ã¹ã¿ã ã®ããã·ã¥ããŒããæ§ç¯ããŸãã
- é·æïŒç¡éã®æè»æ§ãã³ãŒãå質ã¡ããªã¯ã¹ããã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã¡ããªã¯ã¹ïŒAPMïŒããã³ããžãã¹KPIãšåãããã·ã¥ããŒãã«çµã¿åãããããšãã§ããŸãã
- çæïŒã»ããã¢ãããšã¡ã³ããã³ã¹ã®åŽåãå€§å¹ ã«å¿ èŠã«ãªããŸãã
éèŠãªæ¥çå€ïŒCI/CDçµ±å
ã³ãŒãå質ããã·ã¥ããŒãã¯ããã®ããŒã¿ãæ°ããå Žåã«ã®ã¿å¹æçã§ããããã¯ãåæããŒã«ãç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³/ç¶ç¶çãããã€ã¡ã³ãïŒCI/CDïŒãã€ãã©ã€ã³ïŒGitHub ActionsãGitLab CIãJenkinsãªã©ïŒã«æ·±ãçµ±åããããšã§å®çŸãããŸãã
ãã«ãªã¯ãšã¹ããŸãã¯ããŒãžãªã¯ãšã¹ãããšã®äžè¬çãªã¯ãŒã¯ãããŒã次ã«ç€ºããŸãã
- éçºè ãæ°ããã³ãŒããããã·ã¥ããŸãã
- CIãã€ãã©ã€ã³ãèªåçã«ããªã¬ãŒãããŸãã
- ãã€ãã©ã€ã³ã¯ESLintãå®è¡ããJestãã¹ãã¹ã€ãŒããå®è¡ãïŒã«ãã¬ããžãçæïŒãSonarQubeã¹ãã£ããŒãå®è¡ããŸãã
- çµæã¯SonarQubeãµãŒããŒã«ããã·ã¥ãããããã·ã¥ããŒããæŽæ°ãããŸãã
- éèŠãªããšã«ãå質ã²ãŒããå®è£ ããŸãã
å質ã²ãŒãã¯ãã³ãŒãããã«ãã«åæ Œããããã«æºããå¿ èŠã®ããäžé£ã®æ¡ä»¶ã§ããããšãã°ã次ã®å Žåã¯ãã€ãã©ã€ã³ã倱æããããã«æ§æã§ããŸãã
- æ°ããã³ãŒãã®ãã¹ãã«ãã¬ããžã80ïŒ ãäžåã£ãŠããŸãã
- æ°ãããããã«ãŒãŸãã¯ã¯ãªãã£ã«ã«ãªè匱æ§ãå°å ¥ãããŠããŸãã
- æ°ããã³ãŒãã®éè€çã3ïŒ ãè¶ ããŠããŸãã
å質ã²ãŒãã¯ãããã·ã¥ããŒããããã·ããªã¬ããŒãããŒã«ããã³ãŒãããŒã¹ã®ã¢ã¯ãã£ããªã¬ãŒãã£ã¢ã³ã«å€ããäœå質ã®ã³ãŒããã¡ã€ã³ãã©ã³ãã«ããŒãžãããã®ãé²ããŸãã
ã³ãŒãå質æåã®å®è£ ïŒäººçèŠçŽ
ããã·ã¥ããŒãã¯ããŒã«ã§ããããœãªã¥ãŒã·ã§ã³ã§ã¯ãªãããšãå¿ããªãã§ãã ãããæçµçãªç®æšã¯ãçŸãããã£ãŒããæã€ããšã§ã¯ãªããããåªããã³ãŒããäœæããããšã§ããããã«ã¯ãããŒã å šäœãåè³ªã®æææš©ãæã€æåçãªå€åãå¿ èŠã§ãã
ã¡ããªã¯ã¹ãå®è¡å¯èœã«ããéé£ããªãããã«ãã
ããã·ã¥ããŒãã¯ãéçºè ãå ¬ã«æ¥ããããå°å ¥ããåé¡ãæãå°ãªã人ã«åºã¥ããŠç«¶äºçãªé°å²æ°ãäœãåºãããã«äœ¿çšãããã¹ãã§ã¯ãããŸãããããã¯ææãå©é·ãã人ã ãåé¡ãé ããããã¡ããªã¯ã¹ãã²ãŒã ãããããããã«ãªããŸãã
- ããŒã ã«çŠç¹ãåœãŠãïŒã¹ããªã³ãã¬ããã¹ãã¯ãã£ãäžã«ããŒã ã¬ãã«ã§ã¡ããªã¯ã¹ã«ã€ããŠè©±ãåããŸããã埪ç°çè€éæ§ãäžæåŸåã«ãããŸããæ¬¡ã®ã¹ããªã³ãã§ã³ãŒããç°¡çŽ åããããã«ãããŒã ãšããŠäœãã§ããŸããïŒãã®ãããªè³ªåãããŸãã
- ã³ãŒãã«çŠç¹ãåœãŠãïŒããã·ã¥ããŒãã䜿çšããŠããã¢ã³ãŒãã¬ãã¥ãŒãã¬ã€ãããŸãããã¹ãã«ãã¬ããžãäœäžãããããé倧ãªåé¡ãå°å ¥ããããããã«ãªã¯ãšã¹ãã¯ãéé£ã§ã¯ãªã建èšçãªè°è«ã®ãã€ã³ãã§ããã¹ãã§ãã
çŸå®çãªæ®µéçãªç®æšãèšå®ãã
ã¬ã¬ã·ãŒã³ãŒãããŒã¹ã«10,000åã®ã³ãŒãã¹ã¡ã«ãããå Žåãããããããã¹ãŠä¿®æ£ããããšããç®æšã¯ææ¬²ãããããäžå¯èœã§ãã代ããã«ããããŒã€ã¹ã«ãŠãã®ã«ãŒã«ãã®ãããªæŠç¥ãæ¡çšããŠãã ãããåžžã«ã³ãŒããæåã«èŠã€ãããšããããããããªç¶æ ã«ããŠãããŸãã
å質ã²ãŒãã䜿çšããŠããã匷å¶ããŸããããªãã®ç®æšã¯ãããã¹ãŠã®æ°ããã³ãŒãã«ã¯ãæ°ããé倧ãªåé¡ããªãã80ïŒ ã®ãã¹ãã«ãã¬ããžãå¿ èŠã§ããã®ãããªãã®ã§ããããã«ãããåé¡ãæªåããã®ãé²ããããŒã ãæéã®çµéãšãšãã«æ¢åã®è² åµãåŸã ã«è¿æžã§ããããã«ãªããŸãã
ãã¬ãŒãã³ã°ãšã³ã³ããã¹ããæäŸãã
éçºè ã«ãèªç¥è€éæ§ãã¹ã³ã¢ã25ã§ããããšã瀺ãã ãã§ãäœããã¹ãããæåŸ ããªãã§ãã ããããããã®ã¡ããªã¯ã¹ãäœãæå³ããã®ããããã³äžè¬çãªãªãã¡ã¯ã¿ãªã³ã°ãã¿ãŒã³ïŒããšãã°ããã¡ãœããã®æœåºãããæ¡ä»¶ä»ããããªã¢ãŒãã£ãºã ã«çœ®ãæãããïŒã䜿çšããŠæ¹åã§ãããã«ã€ããŠã®ããã¥ã¡ã³ããšãã¬ãŒãã³ã°ã»ãã·ã§ã³ãæäŸããŸãã
çµè«ïŒããŒã¿ããèŠåŸãž
JavaScriptã³ãŒãå質ããã·ã¥ããŒãã¯ãçå£ãªãœãããŠã§ã¢éçºããŒã ã«ãšã£ãŠäžå¯æ¬ ãªããŒã«ã§ãããããŸãããæç¢ºãã«çœ®ãæããã³ãŒãããŒã¹ã®ç¶æ ã«é¢ããå ±æããã客芳çãªçè§£ãæäŸããŸããè€éãããã¹ãã«ãã¬ããžãæè¡çè² åµã®ãããªäž»èŠãªã¡ããªã¯ã¹ãå¯èŠåããããšã§ãããŒã ã¯æ å ±ã«åºã¥ããæææ±ºå®ãè¡ãããšãã§ããŸãã
ããããçã®åã¯ãéçãªã¹ãããã·ã§ãããè¶ ããŠãåŸåã®åæãéå§ãããšãã«è§£æŸãããŸããåŸååæã¯ãæ°å€ã®èåŸã«ããç©èªãæäŸããå質ã€ãã·ã¢ãããæåããŠãããã©ããã確èªãã屿©ã«ãªãåã«åŠå®çãªãã¿ãŒã³ã«ç©æ¥µçã«å¯ŸåŠã§ããããã«ããŸãã
æ ã¯æž¬å®ããå§ãŸããŸããéçè§£æããã³ã«ãã¬ããžããŒã«ãCI/CDãã€ãã©ã€ã³ã«çµ±åããŸããSonarQubeã®ãããªãã©ãããã©ãŒã ãéžæããŠãããŒã¿ãéçŽããŠè¡šç€ºããŸããèªååãããã¬ãŒãã£ã¢ã³ãšããŠæ©èœããå質ã²ãŒããå®è£ ããŸããããããæãéèŠãªããšã¯ããã®åŒ·åãªæ°ããå¯èŠæ§ã䜿çšããŠãããŒã å šäœã®ãªãŒããŒã·ãããç¶ç¶çãªåŠç¿ãããã³è·äººæãžã®å ±æãããã³ãããã¡ã³ãã®æåãè²æããããšã§ãããã®çµæãããåªããã³ãŒãã«ãªãã ãã§ãªããçç£æ§ãé«ããäºæž¬å¯èœã§ãæç¶å¯èœãªéçºããã»ã¹ãé·å¹Žã«ããã£ãŠå®çŸãããŸãã